// 数组
// 数组 是一个特定格式的对象 {索引：值，length}
Array.from({0: 1, length: 1}) // => [1]
const array = {
    0: 1,
    length: 1,
    ['汉字']: 1, // 用在属性名非字母数字特殊符号
    ['!']: '',
}

// array['!']


// 数组的创建
const arr1 = new Array(1, 2, 3, 4, 5, 6); // 多参数创建数组，会将参数打包成一个数组
const arr3 = new Array(10); // 如果只传入1个0、正整数，则该数字代表数组长度
const arr2 = [1, 2, 3, 4, 5, 6]; // 通过自变量、表达式来创建数组

// arr1: Array 的对象, arr1 为引用类型变量
arr1[0]; // 可以通过访问符 . [] 访问对象的公共函数或属性

// 填充数组
// 在创建时填充
const arr4 = [1, 2, 3, 4]
// 创建后填充
// 1. 通过索引值直接赋值，会覆盖原有的值
arr4[0] = 10;
arr4[1] = 11;
// [10,11,3,4]
// 2. push 向数组后面追加一个元素
arr4.push(13);
// [10,11,3,4,13]
// 3. unshift 向数组前面追加一个元素
arr4.unshift(14);
// [14,10,11,3,4,13] 抖音直播间 [100000, ]

arr4.length = 2; // 长度可以手动修改，如果元素长度大于手动修改的长度，多余的元素会被删除
// [14,10]

for (let item of arr4) {
}

// 初始化索引值 let index = 0
// 循环结束条件 index < arr4.length
// 循环递增语句 index++
// arr4[index] 根据索引从数组中取值
for (let index = 0; index < arr4.length; index++) {
    console.log(arr4[index]);
}
//初始化索引 let index = 0
//循环结束条件 index < arr4.length
//循环递增语句 index++
//arr4[index] 根据索引从数组中取值
for (let index = 0; index < arr4.length; index++){
    console.log(arr4[index]);
}
//初始化索引 let index = 0;
//循环结束条件 index < arr4.length
//循环递增语句 index++
// arr4[index]根据索引从数组中取值
for (let index = 0; index < arr4.length; index++){
    console.log(arr4[index]);
}
//初始化索引 let index = 0
//循环结束条件 index < arr4.length
//循环递增语句 index++
//arr4[index]根据索引从数组中取值
for (let index= 0; index <arr4.length; index++ ){
    console.log(arr4[index]);
}
//初始化索引 let index = 0;
//循环结束条件 index < arr4.length
//循环递增语句 index++
//arr4[index]根据索引从数组中取值
for (let index = 0; index < arr4.length; index++){
    console.log(arr4[index]);
}

for (let index = arr4.length - 1; index >= 0; index--){
    console.log(arr4[index])
}

arr4.forEach((item, index, arrSelf) => {
    console.log(item, index,  arrSelf)
})